1. Field of the Invention
The present invention relates generally to a congestion control method and system in a communication system using Transmission Control Protocol (TCP). In particular, the present invention relates to a congestion control method and system for preventing deterioration in transmission performance due to a retransmission timeout during congestion control in Transmission Control Protocol.
2. Description of the Related Art
Request For Comments (RFC) 793 published by Internet Engineering Task Force (IETF), an Internet standardization organization, provides Transmission Control Protocol (TCP) as a protocol for transmitting data over the Internet. Transmission Control Protocol is used to exchange data between nodes connected to the Internet in the form of a packet. Because Transmission Control Protocol operates as a protocol for a transport layer in an upper layer for Internet Protocol (IP) operating in a network layer, it is commonly called “TCP/IP.”
Transmission Control Protocol (TCP), like User Datagram Protocol (UDP), uses Internet Protocol (IP) for a network layer, but it provides a connection-oriented service and a reliable byte-stream service, fundamentally different from services provided by UDP. TCP is a protocol for controlling a rate of a transmission terminal by taking a congestion status of a network into account, and can be used for a transport layer even in a future wire/wireless integrated network. TCP forms one loop having a transmission terminal and a reception terminal as network terminations, and implements a congestion control mechanism using acknowledgement (ACK) information transmitted to acknowledge data reception to the loop, a window size notification to a transmission terminal by a reception terminal, and a timeout function.
Tahoe, Reno, and Newreno TCPs are commonly in use. In TCP communication, when a data segment is received from a transmission terminal, a reception terminal transmits an ACK having the same sequence number as a sequence number of the received data segment. The term “data segment” refers to a unit of a data block transmitted with TCP, referred to as a protocol data unit (PDU). In the TCP communication, a transmission terminal simultaneously transmits as many data segments as a predetermined number, referred to as a congestion window (CWND), even though it fails to receive the ACK from a reception terminal. However, if the transmission terminal receives an ACK having the same sequence number, (duplicate ACKs), it retransmits a data segment having a corresponding sequence number. Even through the transmission terminal does not receive the duplicate ACK, if it fails to receive an ACK for a predetermined timeout period after transmitting a data segment to the reception terminal, the transmission terminal retransmits the data segment.
In a conventional loss recovery process for the Newreno TCP, when a retransmitted data segment is lost again, a transmission terminal continuously receives only a duplicate ACK for the segment lost during retransmission rather than an ACK indicative of successful reception of the retransmitted segment, avoidably causing a retransmission timeout. As a segment loss probability becomes higher, the number of segments lost within one window increases, and in a process of retransmitting lost segments, because the loss probability is increases, the conventional loss recovery of the Newreno TCP may considerably decrease transmission performance in an environment having a high loss rate.
Newreno TCP is specified such that a transmission terminal transmits new segments each time it receives a duplicate ACK after retransmitting a corresponding segment in response to duplicate ACKs. When a recently, transmitted segment is lost, the transmission terminal must retransmit the recently transmitted segment upon a timeout or upon reception of duplicate ACKs for the recently transmitted segment. However, in Newreno TCP, when a lost segment is retransmitted, a size of a congestion window is reduced to half due to retransmission of a previous segment. Therefore, the transmission terminal may fail to receive duplicate ACKs sufficient to retransmit a recently lost segment, undesirably causing a retransmission timeout.
For a retransmission timeout, a timer having a relatively long time measurement of, for example, 500 ms is used, so a time for which a transmission terminal transmits a data segment and then waits for an ACK in response thereto is relatively long. Therefore, the transmission terminal cannot perform any operation on a lost segment for a long period even a status of a link becomes excellent due to the retransmission timeout, resulting in a waste of transmission bandwidth. Accordingly, there is a demand for a method for reducing retransmission timeout probability in Transmission Control Protocol.